c725ae32811fdb0bb59aa93c565dd98d8dee4407,opennms-provision/opennms-detector-lineoriented/src/test/java/org/opennms/netmgt/provision/detector/AsyncDetectorFileDescriptorLeakTest.java,AsyncDetectorFileDescriptorLeakTest,testSucessServer,#,58

Before Change


        for (int i = 0; i < 10000; i++) {
            setUp();
            System.err.println("current loop: " + i);
            m_server = new SimpleServer() {
                
                public void onInit() {
                   setBanner("Winner");
                }
                
            };
            
            m_server.init();
            m_server.startServer();
    
            assertNotNull(m_detector);
            assertNotNull(m_server.getLocalPort());
            m_detector.setPort(m_server.getLocalPort());
            
            DetectFuture future = m_detector.isServiceDetected(m_server.getInetAddress(), new NullDetectorMonitor());
            future.addListener(new IoFutureListener<DetectFuture>() {
    
                public void operationComplete(DetectFuture future) {
                    TcpDetector detector = m_detector;
                    m_detector = null;
                    detector.dispose();
                }
                
            });
            
            future.awaitUninterruptibly();
            assertNotNull(future);
            assertTrue(future.isServiceDetected());
            
            m_server.stopServer();
            m_server = null;
        }
    }

After Change


    @Test
    public void testSucessServer() throws Throwable {
        setUpServer();
        int port = m_server.getLocalPort();
        InetAddress address = m_server.getInetAddress();
        for (int i = 0; i < 10000; i++) {
            setUp();
            System.err.println("current loop: " + i);
            assertNotNull(m_detector);
            
            final TcpDetector detector = m_detector.get();
            
            detector.setPort(port);
            
            DefaultDetectFuture future = (DefaultDetectFuture)detector.isServiceDetected(address, new NullDetectorMonitor());
            future.addListener(new IoFutureListener<DetectFuture>() {
    
                public void operationComplete(DetectFuture future) {
                    detector.dispose();
                }
                
            });
            
            future.awaitUninterruptibly();
            assertNotNull(future);
            if (future.getException() != null) {
                System.err.println("got future exception: " + future.getException());
                throw future.getException();
            }
            System.err.println("got value: " + future.getObjectValue());
            assertTrue(future.isServiceDetected());

            m_detector.set(null);
        }
        tearDownServer();
    }